1. Field of the Invention
Example embodiments of the present invention are related generally to a system and method thereof, and more particularly to a system and method of operating the system.
2. Description of the Related Art
A conventional boot process may initialize a system and may read a portion of an operating system from an auxiliary memory. In addition, if the operating system is changed or not present within the auxiliary memory, the operating system may be installed or loaded into the auxiliary memory during the boot process. In portable information communication devices, a boot memory may be used for initially downloading a system program to an empty non-volatile memory (e.g., during a mass production of the non-volatile memory) or a non-volatile memory with an existing system program (e.g., to replace or update the existing system program).
FIG. 1 illustrates a conventional system. Referring to FIG. 1, the system may include a host 110 (e.g., a computer) which may communicate with an information communication device 150 through an interface 130, such as a universal serial bus (USB) or an advanced technology attachment (ATA)/attachment packet interface (ATAPI). The information communication device 150 may include a central processing unit (CPU) 151, a boot memory 152, a volatile memory 153 and a non-volatile memory 154.
Referring to FIG. 1, if no system program or an unsuitable system program is stored in the information communication device 150, a new system program may be loaded in the corresponding memory 152 and/or 154, as will now be described. A start program (e.g., a limited operating system or BIOS) may be stored in the boot memory 152 and/or the non-volatile memory 154 of the information communication device 150. A driver program for driving the non-volatile memory 154 may be stored in the boot memory 152. In an example, the non-volatile memory 154 may be a read only memory (ROM), a NAND-FLASH memory, a NOR-FLASH memory and/or any other well-known non-volatile memory device. Each type of non-volatile memory 154 may be associated with a different driver program (e.g., due to differences in structure and/or operation between different device types).
Referring to FIG. 1, the system program may be configured to facilitate a general operation of the information communication device 150, and may be downloaded from the host 110. For example, the system program may be downloaded from an Internet site or may alternatively be downloaded from a physical storage medium, such as a diskette, a compact disk (CD), a flash memory device, a DVD, etc., by the host 110. The CPU 151 of the information communication device 150 may execute the non-volatile memory driver program stored in the boot memory 152 and may store the received system program in the non-volatile memory 154 via the volatile memory 153. The path through which the system program may be stored in the non-volatile memory 154 may be denoted in FIG. 1 as a solid line.
Referring to FIG. 1, a process of modifying a pre-existing system program may be similar to the process of initially storing or loading a new system program “from scratch”. The modification process may further include a deletion (e.g., over-writing, erasing, etc.) of the pre-existing system program. For example, the CPU 151 may store the new system program applied via the host 110, the interface 130, and the volatile memory 153 after deleting the stored system program.
Built-in non-volatile memory may increase a cost and complexity of the information communication device 150. However, if the non-volatile memory is detachable (e.g., capable of being removed and re-inserted and/or replaced), a market for “replacement” or upgraded non-volatile memory devices may increase.
As described above, in order to store the system program in the non-volatile memory 154, the non-volatile memory driver program may be stored in the boot memory 152. Therefore, if the non-volatile memory 154 is replaced with a replacement non-volatile memory, the non-volatile memory driver program, stored in the boot memory 152, may also be updated so as to ensure a proper operation with the replacement non-volatile memory, which may be an expensive and time-consuming process. For example, in the case of a mask type boot memory, a non-volatile memory driver program stored in the boot memory may be modified by updating the mask so as to store a new mask associated with the replacement non-volatile memory.